﻿using System;
using System.ComponentModel;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Galaktika.BI.Charting
{
    public enum DataSymbol
    {
        NoSymbol, CircleSymbol, CrossSymbol, Cross2Symbol,
        DiamondSymbol, InvertedTriangleSymbol, LeftTriangleSymbol, RightTriangleSymbol, SquareSymbol, TriangleSymbol,
    }

    public enum SymbolScaleType
    {
        /// <summary>
        /// В пикселях
        /// </summary>
        PixelScale,
        /// <summary>
        /// Основываясь на размерах оси Х
        /// </summary>
        XAxisScale,
        /// <summary>
        /// Основываясь на размерах оси Y
        /// </summary>
        YAxisScale
    }

    public enum LineType
    {
        Default, DashLine, DotLine, DotDashLine, AltDashLine
    }

    public enum LayerType
    {
        /// <summary>
        /// Столбик
        /// </summary>
        Bar,
        /// <summary>
        /// Линия
        /// </summary>
        Line,
        /// <summary>
        /// С накоплением
        /// </summary>
        [Browsable(false)]
        Stacked,
        /// <summary>
        /// Сглаженная линия
        /// </summary>
        SplineLine,
        /// <summary>
        /// Проценты
        /// </summary>
        [Browsable(false)]
        Percentage,
        /// <summary>
        /// Область
        /// </summary>
        Area,
        /// <summary>
        /// Лесенка
        /// </summary>
        StepLine,
        /// <summary>
        /// Кружки
        /// </summary>
        [Browsable(false)]
        Scatter
    }

    public enum LabelLayoutType
    {
        Circle,
        Side
    }

    public enum ChartType
    {
        /// <summary>
        /// Линейная
        /// </summary>
        Line,
        /// <summary>
        /// Круговая
        /// </summary>
        Pie,
        /// <summary>
        /// Столбчатая с накоплением
        /// </summary>
        StackedBar,
        /// <summary>
        /// Области с накоплением
        /// </summary>
        StackedArea,
        /// <summary>
        /// Процентная
        /// </summary>
        Percentage,
        /// <summary>
        /// Столбчатая - все на одном слое (столбики рядом)
        /// </summary>
        MultiBar,
        /// <summary>
        /// Кружки
        /// </summary>
        Bubble
    }

    public enum LegendDockStyle
    {
        TopLeft,
        BottomLeft,
        TopRight,
        BottomRight
    }

    public enum NumericFormat
    {
        General,
        Scientific,
        FixedPoint,
        Currency,
        Percent,
        Number
    }

    public enum PointView
    {
        Argument,
        Values,
        ArgumentAndValues, 
        SeriesName,        
        Undefined 
    }

    public enum PieSeriesLabelPosition
    {
        Inside,
        Outside
    }

    public enum PieExplodeModeCharting
    {
        None,
        All,
        MinValue,
        MaxValue
    }

    public enum ViewType
    {
        Bar,
        StackedBar,
        FullStackedBar,
        Pie,
        Doughnut,
        Point,
        Line,
        StepLine,
        Spline,
        Area,
        SplineArea,
        StackedArea,
        StackedSplineArea,
        FullStackedArea,
        FullStackedSplineArea,
        Stock,
        CandleStick,
        SideBySideRangeBar,
        RangeBar,
        SideBySideGantt,
        Gantt,
        PolarPoint,
        PolarLine,
        PolarArea,
        RadarPoint,
        RadarLine,
        RadarArea,
        Bar3D,
        StackedBar3D,
        FullStackedBar3D,
        ManhattanBar,
        Pie3D,
        Doughnut3D,
        Line3D,
        StepLine3D,
        Area3D,
        StackedArea3D,
        FullStackedArea3D,
        Spline3D,
        SplineArea3D,
        StackedSplineArea3D,
        FullStackedSplineArea3D
    }

    public enum BarSeriesLabelPosition
    {
        Top,
        Center
    }

    public enum MarkerKind
    {
        Square,
        Diamond,
        Triangle,
        InvertedTriangle,
        Circle,
        Plus,
        Cross,
        Star,
        Pentagon,
        Hexagon
    }

    public enum DashStyle
    {
        Empty,
        Solid,
        Dash,
        Dot,
        DashDot,
        DashDotDot
    }

    public enum LegendDirection
    {
        TopToBottom,
        BottomToTop,
        LeftToRight,
        RightToLeft
    }

    public enum LegendAlignmentHorizontal
    {
        Center,
        Left,
        LeftOutside,                
        Right,
        RightOutside
    }

    public enum LegendAlignmentVertical
    {
        Bottom,
        BottomOutside,
        Center,
        TopOutside,
        Top       
    }

    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
    public enum ValueCoordinate
    {
        None,
        X,
        Y,
        Z,
        Size
    }

    public enum MeasureOption
    {
        X,
        Y,
        XY
    }
}
